-
Notifications
You must be signed in to change notification settings - Fork 670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ALttP: fix dungeon fill failures properly #1812
Conversation
This ensures that even for minimal worlds, the locations will be checked appropriately.
Instead of (incorrectly) removing the triforce event, we actually construct the correct base state from scratch. This is somewhat slow but I do not have evidence that a faster and correct method exists.
…nto minimal_test
worlds/alttp/Dungeons.py
Outdated
# pre_fill_items should be a subset of in_dungeon_items, but just in case | ||
pass | ||
for item in pre_fill_items: | ||
subworld.collect(all_state_base, item) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Local variable 'subworld' might be referenced before assignment"
worlds/alttp/Dungeons.py
Outdated
world.worlds[item.player].collect(all_state_base, item) | ||
pre_fill_items = [] | ||
for player in in_dungeon_player_ids: | ||
subworld = world.worlds[item.player] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Local variable 'item' might be referenced before assignment "
This one seems like a fatal mistake.
worlds/alttp/Dungeons.py
Outdated
world.worlds[item.player].collect(all_state_base, item) | ||
pre_fill_items = [] | ||
for player in in_dungeon_player_ids: | ||
subworld = world.worlds[item.player] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
subworld = world.worlds[item.player] | |
subworld = world.worlds[player] |
* Added undertale world files * Tried to fix generation * Fixed generation of Undertale * added Undertale Client * Finished making everything * fixed an item being in the wrong location * Fixed having same item ids as another game * Fixed some duplicate item ids and removed a connection that might cause problems * Added partially automatic patching of Undertale * fixed not building the client * Made changes to Undertale AP * Added an option to remove Temy Armor from the Undertale pool * updated the undertale patch * Added the setups folder to gitignore * updated the undertale patch * Made the plot be location based items * Fixed items that have a negative id * Made changes and additions to Undertale * Added features to Undertale * Added Soul Hunt to Undertale * Fixed the Undertale rules * Fixed another bug * Forgot to fix this Undertale * Added missing client variables * Made UndertaleClient not have copies of CommonClient * fixed hotland logic rules for Undertale * Added deathlink * Fixed some stuff with deathlink * Updated the Undertale patch * Fixed deathlink and local items * Fixed deathlink again in undertale * Fixed a permission error bug with opening files * Made online mode and deathlink a toggle command * Added Progressive Plot to undertale * Updated the patch for Undertale * Added LV rando to Undertale * hopefully made Undertale online mode more stable * Fixed LOVE rando not actually getting told to Undertale * Added a secret feature to Undertale * Added locations for Undertale plot * Added All Routes setting to Undertale * Fixed Undertale rules * Added Area rando to Undertale AP * Fixed a crash in Undertale with starting a new save from nothing * Added stats rando * Almost fixed Undertale generation * Fixed Undertale Stat Rando * Fixed one thing with undertale stat rando * Added progressive weapons and armor to Undertale * Made progressive plot change based on area * Undertale: Updated the patch * Fixed some things with the Undertale Client * Fixed a bunch of stuff with Undertale * attempt at fix * True Fix Undertale * Wow, fixed Undertale * Fixed stuff with Undertale, and made some items marked as useful * Updated the patch for Undertale * Fixed some stuff with Undertale ap * Finally made Undertale have an auto patch feature * Added docs to Undertale * Fixed something with the auto patching of undertale * Actually got the docs right for Undertale * Fixed the Docs for Undertale * Changed gold amount * Fixed data_version for Undertale * Fixed some stuff with Undertale * Fixed some Undertale stuff * Fixed the Undertale init.py file * Fixed some generation errors with Undertale * Fixed the Undertale Client freezing * Made the auto patcher create the Custom Sprites folder * Updated Undertale * Fixed Undertale bugs * Made some changes to UndertaleClient * Fixed some stuff * Fixed some Undertale bugs * Fixed Undertale AP bugs * Final changes * Changed docs some, and fixed a bug with photoshop flowey * Some more fixes * Made a change to a line in UT docs * Forgot to fix the data version * Fixed some Undertale bugs * Made requested changes * Fixed it * Fixed broken stuff * Fixed pacifist route * Fixed player hitbox * Fixed some stuff with clearing files * Fully made Undertale work as an apworld file * Actually fixed undertale client * Forgot to update the patch * fixed some stuff * Actually updated the patch * Made suggested changes * Quality of life change * Updated the Undertale Client launcher component to use the new method * Made requested changes, and removed unused install argument * Missed two lines with the removal of the unused install argument * KH2: AntipointReset (ArchipelagoMW#1815) * Core: skip ModuleUpdate in subprocess * ALttP: fix dungeon fill failures properly (ArchipelagoMW#1812) * Blasphemous: Fixed logic errors in WotHP * CI: add a workflow to show flake8/mypy violations in modified files of a PR (ArchipelagoMW#1513) * CI: add a workflow to show flake8 violations in modified files of a PR * modify a file to trigger the lint check * CI: add a workflow to show mypy violations in modified files of a PR * modify a file to trigger the type check * Split flake8 and mypy into two parallel jobs; run a variant of the workflow on push event; modify a file to trigger the push workflow * fail the task if there are syntax errors; remove old lint workflow * LADX: Add --no-magpie argument for disabling magpie bridge (ArchipelagoMW#1788) * Subnautica: move mod exports to own module * Main: add __all__ and change wrong imports (ArchipelagoMW#1824) * Main: add __all__ and change wrong imports * Adjusters: fix __version__ import * Logging: make sure level is applied for websockets * Core: update modules * LttP: deterministic shop_shuffle * LttP: extract Dungeon and Boss from core (ArchipelagoMW#1787) * Docs: Update world api excluded/priority locations description (ArchipelagoMW#1807) * Update world api doc Changed the description of excluded and priority locations to match how they appear in other places such as the options api doc * Update world api.md * CI: treat all files as modified on new branches (ArchipelagoMW#1826) * The Messenger: override start_inventory description (ArchipelagoMW#1695) * The Messenger: override start_inventory description * use StartInventoryPool directly * WebHost: index columns used by landing page. * WebHost: add game to template export * Core: log race mode enabled * DLCQuest: Fix Documentation Broken Link * [Blasphemous] Various logic fixes (ArchipelagoMW#1830) This makes a few changes to logic to better match the 1.3 rando's logic. This fixes instances where the wrong items were expected, fixes a typo of "Lorqiana", moves the expert logic on "PotSS: Second area ledge" to only apply if on expert, and adds a new route to "DC: Mea Culpa altar" via Linen of Golden Thread + Three Gnarled Tongues * [SM] Minor update to link in Options.py (ArchipelagoMW#1831) * Core: clean up BaseClasses a bit (ArchipelagoMW#1731) * WebHost: use Py3.11 compatible ponyorm * LttP: fix patching crash if old always_apply adjuster settings were applied * Stardew valley: Fix package and imports for apworld linux (ArchipelagoMW#1842) - Fix csv load to use explicitly imported self package instead of keyword __package__ - Fix init.py having a relative import to outside of the apworld * Wargroove: Fixed commander.json file never being closed by the mod (ArchipelagoMW#1841) The Wargroove mod didn't close the commander.json's file handle. The Wargroove mod will now close that file handle. The change for the mod can be viewed here: FlySniper/WargrooveArchipelagoMod@fc9aeb3 The change can be verified as present in this repository by viewing the binary data in the modAssets.dat file and searching for "commander.json" * SMZ3 decoding fix (ArchipelagoMW#1847) * Zillion: cache key includes gun requirement (ArchipelagoMW#1846) The key for the logic cache was missing some important information, so it was yielding a cache hit when it should have been a miss. --------- Co-authored-by: jonloveslegos <[email protected]> Co-authored-by: Mewlif <[email protected]> Co-authored-by: Fabian Dill <[email protected]> Co-authored-by: JaredWeakStrike <[email protected]> Co-authored-by: Fabian Dill <[email protected]> Co-authored-by: espeon65536 <[email protected]> Co-authored-by: Exempt-Medic <[email protected]> Co-authored-by: el-u <[email protected]> Co-authored-by: Cybrou <[email protected]> Co-authored-by: black-sliver <[email protected]> Co-authored-by: alwaysintreble <[email protected]> Co-authored-by: axe-y <[email protected]> Co-authored-by: ScootyPuffJr1 <[email protected]> Co-authored-by: agilbert1412 <[email protected]> Co-authored-by: FlySniper <[email protected]> Co-authored-by: lordlou <[email protected]> Co-authored-by: Doug Hoskisson <[email protected]>
Instead of removing the triforce item (which caused it to never be collected due to the event being marked off as completed), construct the proper state before fill. Tested with 100 generations of a previously-failing yaml combination, 0 failures.